package com.lyz.redis.controller;

import com.lyz.redis.service.ListRedisService;
import com.lyz.redis.vo.Result;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/redis")
public class RedisDemoController {

    @Resource
    private ListRedisService<Integer> integerListRedisService;
    @Resource
    private ListRedisService<String> stringListRedisService;

    @GetMapping("msg/{msg}")
    public Result<?> setMessage(@PathVariable Integer msg){
        List<Integer> data = new ArrayList<>();
        data.add(1);
        data.add(11);
        data.add(111);
        data.add(1111);
        data.add(11111);
        integerListRedisService.set("redis:demo", data);

        List<String> str = new ArrayList<>();
        str.add("1");
        str.add("11");
        str.add("111");
        str.add("1111");
        str.add("11111");
        stringListRedisService.set("redis:demo.string.list", str);

//        Map<String,Object> map = new HashMap<>();
//        redisService.saveList("reids:map",map);
        List<Integer> integers = integerListRedisService.get("redis:demo.string.list");
//        RedisService<String,String>.Hash hash = new RedisService.Hash();
        return Result.OK();
    }

    @GetMapping("msg")
    public Result<?> setMessage(){
        java.util.List<Integer> integer = integerListRedisService.get("redis:demo");
        Map<String,Object> data = new HashMap<>();
        data.put("integer",integer);
        data.put("strs",stringListRedisService.get("redis:demo.string.list"));
        return Result.OK().data(data);
    }
}
